//对数器
#include<iostream>
#include<time.h>
#include<vector>
using namespace std;

void bubbleSort(int n,int arr[])
{
    //falg 定义在这表示你想判断一次循环
    for(int i = 0;i < n - 1;i++)//趟数
    {
        int flag = 0;//每个循环都进行判断
         for(int j = 0;j < n - 1 - i;j++)//比较次数
         {
            if(arr[j] > arr[j + 1])
            {
                swap(arr[j],arr[j + 1]);
                flag = 1;
            }
         }
         //falg 定义在哪里
         
         if(flag == 0)
         {
            break;
         }
    }
}

void insertSort(int arr[],int size)
{
   for(int i = 1;i < size;i++)
   {
    for(int j = i - 1;j >= 0;j--)
    {
        if(arr[j] > arr[j + 1])
        {
            swap(arr[j],arr[j + 1]);
        }
    }
   }
}

//得到一个随机数组，长度是n
//数组中每个数，都是1 ~ v之间，随机得到
vector<int> randomArray(int n,int v)
{
    vector<int> vec(n);
    for(int i = 0;i < n;i++)
    {
        vec[i] = (rand() % v) + 1;
    }
    return vec;
}

//为了验证
bool sameArray(vector<int> v1,vector<int> v2)
{
    int n = v1.size();
    for(int i = 0;i < n;i++)
    {
         if(v1[i] != v2[i])
        {
                return false;
        }
    }
    return true;
}

// 为了验证
vector<int> copyArray(vector<int> arr)
{
    int n = arr.size();
    vector<int> ans(n);
    for(int i = 0;i < n;i++)
    {
        ans[i] = arr[i];
    }
    return ans;
}

int main()
{
    srand(time(nullptr));
    //随机数组的最大长度
    int N = 200;
    //随机数组每个值，1 ~ V之间等概率
    int V = 1000;
    //timeTimes测试次数
    int testTimes = 50000;
    cout << " 测试开始" << '\n';
    for(int i = 0;i < testTimes;i++)
    {
        //得到一个长度，长度在[0 ~  N - 1]
        int n = rand() % N;
        //得到随机数组
        vector<int> vec = randomArray(n,V);
        //这里为什么要拷贝呢？
        vector<int> vec1 = copyArray(vec);
        vector<int> vec2 = copyArray(vec);
        //int size = vec1.size();

        if(!sameArray(vec1,vec2))
        {
            //打印出错的例子
           cout << "出错了"<<'\n';
        }
        
    }
    cout << "测试结束"<<'\n';

    //rand()函数的返回值在0 ~ RAND_MAX的整数
    // srand(time(nullptr));//给rand函数提供一个初始化种子
    // cout << rand()<<'\n';
    return 0;
}



//1.你要确定数组的长度，值的大小，测试次数
//2.得到下标 0 ~ N - 1
//3.得到随机数组
//